package com.jy.wms.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jy.wms.common.UUIDUtils;
import com.jy.wms.common.annotions.BaseServiceDescribe;
import com.jy.wms.common.base.BaseService;
import com.jy.wms.common.base.ServiceException;
import com.jy.wms.common.base.SucessException;
import com.jy.wms.dao.WmsAsnEnclosureMapper;
import com.jy.wms.pojo.WmsAsnEnclosure;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
* @ClassName: WmsAsnEnclosureService.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author Liyi
* @Date Mon Dec 18 15:49:15 CST 2017
*/

@Service
public class WmsAsnEnclosureService extends BaseService<WmsAsnEnclosureMapper,WmsAsnEnclosure> {

 /**
 * 插入一条记录
 * @param entity 实体对象
 * @return int
 */
public Integer baseInsert(WmsAsnEnclosure entity){
     return dao.baseInsert( entity );
}

/**
* 插入一条记录（匹配有值的字段）
* @param entity 实体对象
* @return int
*/
@BaseServiceDescribe(moduleName = "预期到货通知单附件管理",btnName = "新增预期到货通知单附件")
public void baseInsertSelective( WmsAsnEnclosure entity)throws ServiceException,SucessException {
   entity.setId(UUIDUtils.uuid());
   Integer count = dao.baseInsertSelective( entity);
   if(count > 0){
        throw new SucessException("新增预期到货通知单附件");
   }else{
       throw new ServiceException("新增预期到货通知单附件失败，未存入数据库");
   }
}

/**
* 删除（根据主键ID删除）
* @param id 主键
* @return int
*/
public Integer baseDeleteByPrimaryKey(String id){
     return dao.baseDeleteByPrimaryKey( id);
}

/**
* 删除（根据ID 批量删除）
* @param idList 主键ID列表
* @return int
*/
@BaseServiceDescribe(moduleName = "预期到货通知单附件管理",btnName = "批量删除预期到货通知单附件")
@Transactional
public void baseDeleteBathPrimaryKeys( List<String> idList)throws ServiceException,SucessException {
   Integer count = dao.baseDeleteBathPrimaryKeys( idList );
   if(count == idList.size()){
       throw new SucessException("删除预期到货通知单附件成功");
   }else{
       throw new ServiceException("删除预期到货通知单附件失败,未完全删除");
   }
}

/**
* 分页查询
* @param entity 实体
* @return Page<WmsAsnEnclosure>
*/
public Page<WmsAsnEnclosure> baseSelectPage(WmsAsnEnclosure entity ){
    PageHelper.startPage(entity.getPage(),entity.getRows());
    return (Page<WmsAsnEnclosure>)dao.baseSelectPage( entity );
}

    /**
     * 根据asnId 查询对应的附件列表（不分页）
     * @param asnid
     * @return
     */
    @BaseServiceDescribe(moduleName = "预期到货通知单附件管理",btnName = "查询预期到货通知单附件列表")
public List<WmsAsnEnclosure> getListByAsnid(String asnid)throws ServiceException {
    try {
        return dao.getListByAsnid(asnid);
    } catch (Exception e) {
        throw new ServiceException("查询预期到货通知单附件列表",e);
    }
}
/**
* 查询（根据主键ID查询）
* @param id 主键ID
* @return WmsAsnEnclosure
*/
public WmsAsnEnclosure baseSelectByPrimaryKey(String id ){
     return dao.baseSelectByPrimaryKey( id );
}

/**
* 查询（根据ID 批量查询）
* @param idList 主键ID列表
* @return list
*/
public Integer baseSelectBathPrimaryKeys(List<WmsAsnEnclosure> idList ){
     return dao.baseSelectBathPrimaryKeys( idList );
}

/**
*修改 （匹配有值的字段）
* @param entity 主键ID列表
* @return int
*/
@BaseServiceDescribe(moduleName = "预期到货通知单附件管理",btnName = "修改预期到货通知单附件")
public void baseUpdateByPrimaryKeySelective( WmsAsnEnclosure entity)throws SucessException,ServiceException {
   Integer count = dao.baseUpdateByPrimaryKeySelective( entity);
   if(count>0){
       throw new SucessException("修改预期到货通知单附件成功");
   }else{
       throw new ServiceException("修改预期到货通知单附件失败，为存入数据库");
   }
}

/**
*修改（根据主键ID修改）
* @param entity 主键ID列表
* @return int
*/
public Integer baseUpdateByPrimaryKey(WmsAsnEnclosure entity){
     return dao.baseUpdateByPrimaryKey( entity);
}
}
